package com.github.tangmonkmeat;

import java.util.Scanner;

/**
 * Description:
 *
 * @author zwl
 * @version 1.0
 * @date 2021/8/28 上午10:26
 */
public class 三元组个数 {

    static final int maxn = 100000+5;

    // indx数组用来保存每个元素一开始的下标
    static int indx[] = new int[maxn];

    // 这里的下标用的都是每个元素一开始的下标
    static int lleft[] = new int[maxn], rright[] = new int[maxn];

    // tmp数组用来存放归并中的临时数据
    static int tmp_indx[] = new int[maxn], temp[] = new int[maxn];


    public static void main(String[] args) {
        try(Scanner sc = new Scanner(System.in)){
            int n = sc.nextInt();
            int[] ins = new int[n];
            for(int i = 0;i < n;i++){
                ins[i] = sc.nextInt();
                indx[i]=i;
            }
            sort(ins,0,ins.length - 1);

            long ans = 0;
            for(int i=0;i<n;i++){
                ans+=(long)lleft[i]*rright[i];
            }

            System.out.println(ans);
        }
    }

    public static void sort(int[] arr, int l, int r){
        if(l==r){
            lleft[l]=rright[l]=0;
        }
        else if (l < r){
            int mid = (l + r) >> 1;
            sort(arr,l,mid);
            sort(arr,mid + 1,r);

            int i = l;
            int j = mid + 1;
            int index = l;
            // 归并
            while (i <= mid && j <= r){
                if (arr[i] <= arr[j]){
                    rright[indx[i]]+=r-j+1;
                    temp[index] = arr[i];
                    tmp_indx[index++]=indx[i++];
                }else{
                    lleft[indx[j]]+=i-l;
                    temp[index] = arr[j];
                    tmp_indx[index++]=indx[j++];
                }
            }
            // 左边子序列剩余的元素
            while (i <= mid){
                temp[index] = arr[i];
                tmp_indx[index++]=indx[i++];
            }
            // 右边子序列剩余的元素
            while (j <= r){
                lleft[indx[j]]+=i-l;
                temp[index] = arr[j];
                tmp_indx[index++]=indx[j++];
            }

            for(int k=l;k<=r;k++){
                arr[k]=temp[k];
                indx[k]=tmp_indx[k];
            }
        }
    }
}
